/**
 * 简单演示：完整流程接口
 * 展示一次性完成 TikTok URL → 商品名称 → Shoplus API → 完整商品数据 → 数据库
 */

const axios = require('axios');

const BASE_URL = 'http://localhost:3000/api/products';

// 测试用的TikTok商品链接
const DEMO_URL = 'https://shop.tiktok.com/view/product/1731808168774042656?region=MY&local=en&source=product_detail';

/**
 * 演示完整流程
 */
async function demoCompleteFlow() {
  console.log('🚀 演示完整流程接口');
  console.log('📋 测试URL:', DEMO_URL);
  console.log('⏳ 开始处理...\n');
  
  try {
    const startTime = Date.now();
    
    // 调用完整流程接口
    const response = await axios.post(`${BASE_URL}/complete-flow`, {
      url: DEMO_URL
    });
    
    const endTime = Date.now();
    const duration = endTime - startTime;
    
    if (response.data.success) {
      console.log('✅ 完整流程成功！');
      console.log(`⏱️  总耗时: ${duration}ms`);
      console.log('📝 处理结果:', response.data.message);
      
      const data = response.data.data;
      const product = data.product;
      const isNewProduct = data.isNewProduct;
      const steps = response.data.steps || {};
      
      console.log('\n📦 商品信息:');
      console.log(`  🆔 ID: ${product.id}`);
      console.log(`  📛 名称: ${product.productName}`);
      console.log(`  💰 价格: $${product.priceUsd} / ¥${product.price}`);
      console.log(`  🏪 店铺: ${product.sellerName}`);
      console.log(`  📊 周销量: ${product.weekSoldCount}`);
      console.log(`  💵 周销售额: $${product.weekSalesUsd}`);
      console.log(`  🎯 总销售额: $${product.totalSalesUsd}`);
      console.log(`  📹 关联视频: ${product.relatedVideos}`);
      console.log(`  👥 关联达人: ${product.relatedAuthor}`);
      
      console.log('\n🔄 执行步骤:');
      console.log(`  📱 TikTok爬取: ${steps.step1_tiktok || '未知'}`);
      console.log(`  🛍️  Shoplus搜索: ${steps.step2_shoplus || '未知'}`);
      console.log(`  🆕 是否新商品: ${isNewProduct ? '是' : '否'}`);
      
      if (data.searchResults) {
        console.log(`  🔍 搜索结果数: ${data.searchResults}`);
        console.log(`  🔑 搜索关键词: ${data.searchKeywords}`);
      }
      
      console.log('\n🎉 演示完成！商品信息已保存到数据库');
      
    } else {
      console.log('❌ 完整流程失败');
      console.log('错误信息:', response.data.message);
      console.log('失败步骤:', response.data.step);
      
      if (response.data.error) {
        console.log('详细错误:', response.data.error);
      }
    }
    
  } catch (error) {
    console.log('❌ 请求失败');
    console.log('错误信息:', error.message);
    
    if (error.response) {
      console.log('HTTP状态:', error.response.status);
      console.log('响应数据:', JSON.stringify(error.response.data, null, 2));
    }
  }
}

/**
 * 查看保存的商品信息
 */
async function viewSavedProduct() {
  console.log('\n📋 查看保存的商品信息...');
  
  try {
    // 从URL中提取商品ID
    const productId = DEMO_URL.match(/\/product\/(\d+)/)?.[1];
    
    if (!productId) {
      console.log('❌ 无法提取商品ID');
      return;
    }
    
    const response = await axios.get(`${BASE_URL}/${productId}`);
    
    if (response.data.success) {
      const product = response.data.data;
      console.log('✅ 商品信息获取成功');
      console.log('📅 创建时间:', new Date(product.createTime).toLocaleString());
      console.log('🔄 更新时间:', new Date(product.updateTime).toLocaleString());
    } else {
      console.log('❌ 商品不存在');
    }
    
  } catch (error) {
    console.log('❌ 获取商品信息失败:', error.message);
  }
}

/**
 * 主函数
 */
async function main() {
  console.log('🎯 完整流程接口演示');
  console.log('=' .repeat(50));
  
  // 演示完整流程
  await demoCompleteFlow();
  
  // 查看保存的商品信息
  await viewSavedProduct();
  
  console.log('\n' + '='.repeat(50));
  console.log('🎊 演示结束！');
  console.log('\n💡 提示:');
  console.log('  - 完整流程接口自动处理所有步骤');
  console.log('  - 如果商品已存在，会跳过TikTok爬取，直接更新Shoplus数据');
  console.log('  - 支持详细的错误处理和步骤反馈');
  console.log('  - 可以通过API文档查看更多接口');
}

// 运行演示
if (require.main === module) {
  main().catch(console.error);
}

module.exports = {
  demoCompleteFlow,
  viewSavedProduct
};